package com.atao.example.newdate01;

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjuster;
import java.time.temporal.TemporalAdjusters;

/**
 * @author 阿涛
 * @date 2021-03-07
 */
public class Test {
    public static void main(String[] args) {
        //todo 获取当前日期，只含年月日 固定格式 yyyy-MM-dd  2020-05-25
        LocalDate today = LocalDate.now();

        //todo 根据年月日取日期，5月就是5
        LocalDate oldDate = LocalDate.of(2018, 5, 1);

        //todo 根据字符串取：默认格式 yyyy-MM-dd ，02不能写成2
        LocalDate yesterday = LocalDate.parse("2018-05-03");

        //todo 如果不是闰年 ，传入29会报错
//        LocalDate localDate = LocalDate.parse("2018-02-29");

        //todo ==================日期转换=============================
        //todo 2018-05-04
        LocalDate today1 = LocalDate.now();

        //todo 取本月第一天：  2018-05-01
        LocalDate firstDayOfMonth = today1.with(TemporalAdjusters.firstDayOfMonth());

        //todo 取本月第二天：  2018-05-02
        LocalDate secondDayOfMonth = today1.withDayOfMonth(2);

        //todo 取本月最后一天，再也不用计算是28，29，30还是31：  2018-05-31
        LocalDate lastDayOfMonth = today1.with(TemporalAdjusters.lastDayOfMonth());

        //todo 取下一天： 2018-06-01
        LocalDate plusDays = lastDayOfMonth.plusDays(1);

        //todo 取2018年10月第一个周三 so easy？
        LocalDate date = LocalDate.parse("2018-10-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.WEDNESDAY));
    }
}
